﻿/*
Commerce by Onex – eCommerce software platform (www.ecommerce.byonex.com)
Copyright (C) 2008-2010 by Onex Group

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 */
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ShopModel;
using ShopBLL;
/// <summary>
/// Formatka na której wyświeltany jest koszyk
/// </summary>
public partial class Basket : BasePage
{
    #region EVENTS

    protected void dgvBasketItems_DataBound(object sender, EventArgs e)
    {
        int countTextBoxCell = 3;
        int sumPriceCell = 4;
        int productIdCell = 5;

        GridViewRow row;
        TextBox txtCount;

        for (int i = 0; i < dgvBasketItems.Rows.Count; i++)
        {
            row = dgvBasketItems.Rows[i];
            txtCount = (TextBox)row.Cells[countTextBoxCell].Controls[1];
            txtCount.Attributes.Add("onChange", "ChangeAmount(this," + row.Cells[productIdCell].Text + ");");
            txtCount.Attributes.Add("onkeypress", "return StopEnterPostBack(this, event);");
            row.Cells[sumPriceCell].ID = "sumPrice";
        }

        dgvBasketItems.Columns[productIdCell].Visible = false;
    }

    #endregion EVENTS

    #region PAGE EVENTS

    protected void Page_Load(object sender, EventArgs e)
    {
        decimal sumPriceBrutto = 0, sumPriceNetto = 0;

        List<BasketItem> basketitemsList = BasketManager.Instance.GetBasket(Session.SessionID, ShopBLL.CommonTools.CurrentLanguageID);

        foreach (BasketItem item in basketitemsList)
        {
            sumPriceBrutto += item.PriceBrutto * item.Count;
            sumPriceNetto += item.PriceNetto * item.Count;
        }

        dgvBasketItems.DataSource = basketitemsList;
        dgvBasketItems.DataBind();

        lblSumPrice2.Text = Resources.Language.Currency + " " + sumPriceBrutto.ToString("F") + " (" + Resources.Language.Currency + " " + sumPriceNetto.ToString("F") + " " + Resources.Language.WithoutVAT + ")";

        if (string.IsNullOrEmpty(lbtnToCashDesk.NavigateUrl))
        {
            lbtnToCashDesk.NavigateUrl = Resources.Language.UrlOrderDetail.ToLower() + ".aspx";
        }
        if (string.IsNullOrEmpty(lbtnBackToShop.NavigateUrl))
        {
            lbtnBackToShop.NavigateUrl = Resources.Language.UrlDefault.ToLower() + ".aspx";
        }

        if (Request.UrlReferrer != null && Request.UrlReferrer.LocalPath.LastIndexOf(Resources.Language.UrlBasket.ToLower() + ".aspx") < 0 && Request.UrlReferrer.LocalPath.LastIndexOf(Resources.Language.UrlOrderDetail.ToLower() + ".aspx") < 0)
        {
            lbtnBackToShop.NavigateUrl = Request.UrlReferrer.LocalPath;
            Session["UrlBackFromBasket"] = Request.UrlReferrer.LocalPath;
        }
        else
        {
            lbtnBackToShop.NavigateUrl = (string)Session["UrlBackFromBasket"];
        }
        if (basketitemsList.Count == 0)
        {
            lbtnBackToShop.Attributes.Add("style", "display:block");
            lbtnToCashDesk.Attributes.Add("style", "display:none");

        }
        else
        {
            lbtnBackToShop.Attributes.Add("style", "display:none");
            lbtnToCashDesk.Attributes.Add("style", "display:block");
        }

    }

    #endregion PAGE EVENTS
}
